package Service.StudentService;

import Dao.StudentDao.StudentSQLDao;
import Entity.SelectCourse;
import Entity.Student;

import java.util.List;
/*
学生后台 Service层 负责整合Dao层逻辑
 */
public class StudentService {

    private StudentSQLDao studentSQLDao = new StudentSQLDao();


    /*
    学生注册
    逻辑 先判断是否已经有该学号  如果有则不注册
     */
    public int studentRegister(Student student){
        if (queryIdIsExist(student.getStudentId())>0) return 0;
        return  studentSQLDao.insertStudent(student);
    }



    /*
    查询该学生Id是否存在 注册前判断
     */
    public int queryIdIsExist(String studentId){return  studentSQLDao.queryIdIsExist(studentId);}



    /*
    学生登陆
     */
    public Student studentLogin(Student student){return studentSQLDao.selectStudentByStudentIdAndPassword(student);}



    /*
    学生修改个人信息 并更新数据
    逻辑 如果修改成功 得返回已经修改成功的数据
         否则返回空
     */
    public Student updateByStudentId(Student student){

        if(studentSQLDao.updateByStudentId(student)>0){
            return studentSQLDao.selectStudentNoPassword(student);
        }
        return null;
    }



    /*
    学生修改个人密码 并更新数据
    逻辑 如果修改成功 得返回已经修改成功的数据
         否则返回空
     */
    public Student modifyPasswordById(Student student){
        if (studentSQLDao.modifyPassword(student)>0){
            return studentSQLDao.selectStudentNoPassword(student);
        }
        return null;
    }



    /*
    学生选可选课程
    逻辑 遍历选择的课程 调用Dao层插入数据
     */
    public int insertSelectCourse(List<SelectCourse> selectCourses)
    {
        int j = 0;
        for(int i =0;i<selectCourses.size();i++) {
           int number =  studentSQLDao.queryByCourseId(selectCourses.get(i));
            if (number > 0) continue;
             studentSQLDao.insertSelectCourse(selectCourses.get(i));
             j+=1;
        }
        return j;
    }




    /*
    学生通过学生ID 学生姓名 查询是否有此人
     */
    public boolean selectStudentByIdAndName(String studentId, String studentName) {
        return studentSQLDao.selectStudentByIdAndName(studentId, studentName);
    }



    /*
    学生通过 学生ID 学生姓名  新的学生密码 修改密码
     */
    public int updatePasswordNoLogin(String studentId,String studentName, String studentPassword){
        return studentSQLDao.updatePasswordNoLogin(studentId, studentName,studentPassword);
    }

}
